﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla.Data;

namespace Accounting.Library.GhiSo
{
    public class GhiSoBSP_BanHangHoa : GhiSoService
    {

        public GhiSoBSP_BanHangHoa(object ChungTu) : base(ChungTu) { }

        public override void GhiSoChiTiet(ContextManager<Accounting.DataAccess.AccountingDataContext> ctx)
        {
            DataAccess.BSP_BanHangHoa parent = (DataAccess.BSP_BanHangHoa)ChungTu;

            //if (!(bool)parent.DaThanhToan)
            //{
                LoaiChungTuId = BusinessConfiguration.Configuration.LoaiChungTuId_BSP_BanHangHoa;
                NgayChungTu = parent.NgayChungTu;
                NgayHachToan = parent.NgayHachToan;
                SoHD = parent.Ma;

                #region BSP_BanHangHoa_ChiTiet
                foreach (DataAccess.BSP_BanHangHoa_ChiTiet child in parent.BSP_BanHangHoa_ChiTiets)
                {
                    if (child.ThanhTienQĐ != null)
                    {
                        if (!child.ThanhTienQĐ.Equals(0))
                        {
                            //Su dung store procedure nay để add dữ liệu vào trong so chi tiet
                            ctx.DataContext.addTH_SoChiTiet(ref Khoa, child.ChungTuGocId, child.Khoa, LoaiChungTuId,
                                NgayChungTu, NgayHachToan, SoHD, child.TKNoId, child.TKCoId, child.DienGiai, child.ThanhTienQĐ, KyKetChuyenId,
                                BusinessConfiguration.Configuration.CHITIET, null, null);
                        }
                    }
                } 
                #endregion

                #region BSP_BanHangHoa_GiaVon
                foreach (DataAccess.BSP_BanHangHoa_GiaVon child in parent.BSP_BanHangHoa_GiaVons)
                {
                    if (child.ThanhTienVonQĐ != null)
                    {
                        if (!child.ThanhTienVonQĐ.Equals(0))
                        {
                            //Su dung store procedure nay để add dữ liệu vào trong so chi tiet
                            ctx.DataContext.addTH_SoChiTiet(ref Khoa, child.ChungTuGocId, child.Khoa, LoaiChungTuId,
                                NgayChungTu, NgayHachToan, SoHD, child.TKNoId, child.TKCoId, child.DienGiai, child.ThanhTienVonQĐ, KyKetChuyenId,
                                BusinessConfiguration.Configuration.CHITIET, null, null);
                        }
                    }
                } 
                #endregion

                #region BSP_BanHangHoa_Thue
                foreach (DataAccess.BSP_BanHangHoa_Thue child in parent.BSP_BanHangHoa_Thues)
                {
                    if (child.TienThueGTGTQĐ != null)
                    {
                        if (!child.TienThueGTGTQĐ.Equals(0))
                        {
                            //Su dung store procedure nay để add dữ liệu vào trong so chi tiet
                            ctx.DataContext.addTH_SoChiTiet(ref Khoa, child.ChungTuGocId, child.Khoa, LoaiChungTuId,
                                NgayChungTu, NgayHachToan, SoHD, child.TKNoId, child.TKCoId, child.DienGiai, child.TienThueGTGTQĐ, KyKetChuyenId,
                                BusinessConfiguration.Configuration.THUE_GTGT, null, null);
                        }
                    }
                }
                #endregion
            //}
        }
    }
}
